//#include <iostream>
//#include <boost/thread.hpp>
//#include <boost/circular_buffer.hpp>
//#include "../inc/Utils.hxx"
//#include "../inc/Echo.hxx"
//#include "../inc/Transmitter.hxx"
//#include "../inc/Receiver.hxx"
//#include "../inc/Environment.hxx"
//#include "../inc/Pulse.hxx"
//
//using namespace std;
//
////GLOBALNE ZMIENNE
//int const echoBufferSize = 128;
//boost::circular_buffer<Echo> echoBuffer(echoBufferSize);
//
//void initEnvironment(Environment& env) {
//    Coordinates c1(1000, 1000, 1000), c2(8000, 5000, 5000);     //obiekty 1 i 2 w pierwszej cwiartce
//    Coordinates c3(-1200, 4000, 3800), c4(-3500, 2200, 4000);   //obiekty 3 i 4 w drugiej cwiartce
//    Coordinates c5(-3000, -3000, 6000), c6(-5000, -7000, 2000); //obiekty 5 i 6 w trzeciej cwiartce
//    Coordinates c7(8000, -9000, 9000), c8(5800, -8500, 7500); //obiekty 7 i 8 w czwartej cwiartce
//    
//    Velocity v1(10, 5, -10), v2(0, -10, 5);
//    Velocity v3(15, 10, 5), v4(20, -5, -10);
//    Velocity v5(-10, 10, 25), v6(-20, -30, 40);
//    Velocity v7(50, 50, -20), v8(30, 50, -5);
//
//    Target t1(c1, v1), t2(c2, v2);
//    Target t3(c3, v3), t4(c4, v4);
//    Target t5(c5, v5), t6(c6, v6);
//    Target t7(c7, v7), t8(c8, v8);
//
//    env.addTarget(t1);
//    env.addTarget(t2);
//    env.addTarget(t3);
//    env.addTarget(t4);
//    env.addTarget(t5);
//    env.addTarget(t6);
//    env.addTarget(t7);
//    env.addTarget(t8);
//}
//
//void probing(Environment& env) {
//    Pulse pulse(10);
//    Antenna antenna;
//    Transmitter transmitter;
//    Receiver receiver;
//    Echo echo(Utils::RANGE_BINS_COUNT);
//    while(true) {
//        transmitter.ping(pulse);
//        env.getResponse(&pulse, &echo);
//        receiver.pong(echo);
//        echoBuffer.push_back(echo);
//        antenna.updateState();
//        usleep(1000000 * 1/Antenna::PRF);    // czekamy 1/prf SEKUND
//        if(Antenna::IS_NEW_ROUND) {  //tutaj damy sprawdzanie czy juz nastapil pelen obroti
//            cout << "Round#" << Antenna::ROUND_NUMBER << endl;
//            env.updateEnvironment(); //aktualnizujemy sytuacje w powietrzu
//        }
//    }
//}
//
//void dsp() {
//    int i = 0;
//    while(true) {
//        cout << "DSP IN PROGRESS... " << i << endl;
//        sleep(1);
//        i++;
//    }
//}
//
//int main() {
//    Environment env;
//    initEnvironment(env);
//
////    boost::thread dspThread(dsp);
//    boost::thread probingThread(probing, env);
//    
//    probingThread.join();
////    dspThread.join();
//}
//
